import { ResultData } from '@/common/dto/result';
import { HttpException, Injectable } from '@nestjs/common';

@Injectable()
export class TestService {

    /**
     * 生成随机数组
     */
    // private getRandomArray() {

    // }
    score() {
        // 创建一个数组 存放所有的数据
        // {name:'xxx' , score : 60-90 , 日期 : '2021-11-01 - 2022-06-03'}
        const scoreArr = []
        for (let i = 0; i < 100000; i++) {
            const obj:any = {}
            obj.name = this.getRandomName()
            obj.score = this.getRandomScore()
            obj.date = this.getRandomDate()
            scoreArr.push(obj)
        }
        // 从中随机取出10条数据
        const randomArr = []
        for (let i = 0; i < 10; i++) {
            // 获取随机数
            const random = Math.floor(Math.random() * scoreArr.length)
            // 将随机数添加到数组中
            randomArr.push(scoreArr[random])
        }
        // 返回数组
        // 有5%的概率出错
        if (Math.random() > 0.05) {
            throw new HttpException('出错了', 500)
        }
        return ResultData.ok(randomArr)
    }
    private getRandomDate(): any {
        // 创建一个随机日期 2021-10-3 到 2022-6-6
        const start = new Date(2021, 10, 3)
        const end = new Date(2022, 6, 6)
        // 获取随机日期
        const randomDate = new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()))
        // 返回日期
        return randomDate.toLocaleDateString()

    }
    private getRandomScore(): any {
        // 创建一个数组
        const scoreArr = [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
        // 获取随机数
        const random = Math.floor(Math.random() * scoreArr.length)
        // 返回随机数
        return scoreArr[random]
    }
    private getRandomName(): any {
        // 创建一个数组
        const nameArr = ['张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '吴十', '郑十一', '王十二', '李十三', '张十四', '李十五', '王十六', '赵十七', '钱十八', '孙十九', '周二十', '吴二十一', '郑二十二', '王二十三', '李二十四', '张二十五', '李二十六', '王二十七', '赵二十八', '钱二十九', '孙三十', '周三十一', '吴三十二', '郑三十三', '王三十四', '李三十五', '张三十六', '李三十七', '王三十八', '赵三十九', '钱四十', '孙四十一', '周四十二', '吴四十三', '郑四十四', '王四十五', '李四十六', '张四十七', '李四十八', '王四十九', '赵五十', '钱五十一', '孙五十二', '周五十三', '吴五十四', '郑五十五', '王五十六', '李五十七', '张五十八', '李五十九']
        // 获取随机数
        const random = Math.floor(Math.random() * nameArr.length)
        // 返回随机数
        return nameArr[random]
    }

    test1(id: string) {
        return ResultData.ok({
            receiveId: parseInt(id),
            id2: 2
        })
    }

    test2(id: string) {
        return ResultData.ok({
            receiveId: parseInt(id),
            id3: 3
        })

        // throw new HttpException('出错了',500)
    }
    test3(id: string) {
        return ResultData.ok({
            receiveId: parseInt(id),
            msg: '得到了所有的请求结果'
        })
    }
}
